package com.gdust.hzx.manager.service.impl;

import com.gdust.hzx.manager.mapper.ProductSpecMapper;
import com.gdust.hzx.manager.service.ProductSpecService;
import com.gdust.hzx.model.entity.product.ProductSpec;
import com.github.pagehelper.PageHelper;
import com.github.pagehelper.PageInfo;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Service;

import java.util.List;

/**
 * ClassName: ProductSpecServiceImpl
 * Package: com.gdust.spzx.manager.service.impl
 * Description:
 *
 * @Author syun
 * @Create 2024/12/22 10:15
 * @Version 1.0
 */
@Service
public class ProductSpecServiceImpl implements ProductSpecService {
    //注入商品规格表的mapper
    @Autowired
    private ProductSpecMapper productSpecMapper;


    /**
     * 分页查询商品规格信息
     *
     * @param page  当前页码（从1开始计数）
     * @param limit 每页记录数
     * @return 分页信息，包括当前页的数据列表和分页元信息
     */
    @Override
    public PageInfo<ProductSpec> findByPage(Integer page, Integer limit) {
        // 使用 MyBatis 分页插件 PageHelper 实现分页功能
        // 参数 page：当前页码
        // 参数 limit：每页显示的记录数
        PageHelper.startPage(page, limit);

        // 调用 Mapper 层的方法获取未分页的商品规格列表
        List<ProductSpec> list = productSpecMapper.findByPage();

        // 使用 PageInfo 包装结果列表，生成包含分页信息的结果对象
        return new PageInfo<>(list);
    }

    /**
     * 添加商品规格
     * @param productSpec 商品规格
     */
    @Override
    public void save(ProductSpec productSpec) {
        //自定义查询：添加商品规格
        productSpecMapper.save(productSpec);
    }

    /**
     * 修改商品规格
     * @param productSpec
     */
    @Override
    public void updateById(ProductSpec productSpec) {
        //自定义查询：修改商品规格
        productSpecMapper.update(productSpec);

    }

    /**
     * 删除商品自定义规格信息
     * @param id
     */
    @Override
    public void deleteById(Long id) {
        //自定义查询：删除商品自定义规格信息
        productSpecMapper.delete(id);
    }

    /**
     * 查询所有商品规格
     * @return
     */
    @Override
    public List<ProductSpec> findAll() {
        return productSpecMapper.findAll();
    }


}
